<?php

class AuthController extends WxController
{
    //引入布局,yii使用renderPartial不会引入js文件
    public $layout = '//layouts/null';


    /**
     * 声明基于类的行为
     */
    public function actions()
    {
        return array(
            'page'=>array(
                'class'=>'CViewAction',
            ),
        );
    }



    /**
     * @return  用户登录方法
     */
    public function actionLogin(){

        $user_login = new LoginForm();
        $this->pageTitle = 'uu用户登录';
        //是否是ajax验证
        if(isset($_POST['ajax']) && $_POST['ajax'] === 'login-form'){
            echo CActiveForm::validate($user_login);
            Yii::app()->end();
        }

        // 收集用户输入的数据
        if(Yii::app() -> request -> isPostRequest)
        {
            //用户锁定时间  分钟
            $time = Yii::app()->params['lockUserLoginTime'];
            $user_login->attributes=$_POST['LoginForm'];
            //检测是否被登录限制   //用户登录
           if(parent::_cookiesGet('adminLogin')) {
                //上分钟了
                if(parent::_cookiesGet('adminLogin')-time() > 60){
                    $lockTime = ceil((parent::_cookiesGet('adminLogin')-time())/60);
                    $timeLang = '分钟后尝试';
                }else{
                    $lockTime = parent::_cookiesGet('adminLogin')-time();
                    $timeLang = '秒后尝试';
                }
                $this -> redirect_message('您的账号已锁定,请过'.$lockTime.$timeLang, 'error', 1, Yii::app() -> createUrl('admin/auth/login'));
           }

            //用户信息进行session存储login()方法
            // 证用户输入  如果有效则重定向到前一页
            //如果登录验证都成功则跳转 $model->validate() && && $user_login->login()


            if($user_login->validate() && $user_login->login()){
                $this->redirect(Yii::app()->createUrl('admin'));
            }else{
                //失败
                if (Yii::app()->session['errorAdminLogin']) {
                    $error = intval(Yii::app()->session['errorAdminLogin']) - 1;
                    if($error <=1){
                        //删除session的值
                        unset(Yii::app()->session['errorAdminLogin']);
                        //设置cookie
                        $cookie = new CHttpCookie('adminLogin',time()+$time*60);
                        $cookie->expire = time()+$time*60; //时间
                        Yii::app()->request->cookies['adminLogin']=$cookie;
                    } else {
                        Yii::app()->session['errorAdminLogin'] = $error;
                    }
                } else {
                    //用户输入错误最大数
                    $error = Yii::app()->params['userErrorMax'];
                    Yii::app()->session['errorAdminLogin'] = $error;
                }
                    //登录失败了
                $this -> redirect_message('用户名或密码错误,您还可以尝试'.$error.'次', 'error', 1, Yii::app() -> createUrl('admin/auth/login'));
            }
        }
        //显示登陆表单
        $this->render('login',array('user_login'=>$user_login));
    }

    /**
     * 注销当前用户和重定向到主页
     */
    public function actionLogout()
    {
        Yii::app()->admin->logout(false);
        $this->redirect(Yii::app()->createUrl('admin/auth/login'));
    }
    public function actionSetting(){
        $this->layout='/layouts/column2';


        $this->render('setting');
    }



    /**
     * 这是方法来处理外部异常.
     */
    public function actionError()
    {
        if($error=Yii::app()->errorHandler->error)
        {
            if(Yii::app()->request->isAjaxRequest)
                echo $error['message'];
            else
                $this->render('error', $error);
        }
    }

}